package Controlador;
import Vista.VistaEstudiante;
import Vista.VistaPrincipal;
import Modelo.Estudiante;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.io.IOException;

import javax.swing.JOptionPane;

public class CntrlEstudiante extends WindowAdapter implements ActionListener {
	VistaPrincipal vistaPrincipal;
	VistaEstudiante vistaEstudiante;
	
	public CntrlEstudiante(VistaEstudiante vEst)
	{
		vistaEstudiante=vEst;
		vistaEstudiante.btnRegistrar.setEnabled(false);
		vistaEstudiante.btnRetirar.setEnabled(false);
		vistaEstudiante.txtApellido.setEnabled(false);
		vistaEstudiante.txtNombre.setEnabled(false);
	}
	
	
	public void actionPerformed(ActionEvent ae) {
		if(ae.getSource()==vistaEstudiante.btnRegistrar){
			boolean valida=false;
			valida=validarCampos();
			if(valida){
			Estudiante estudiante=new Estudiante();
			estudiante.setCedula(Integer.parseInt(vistaEstudiante.txtCedula.getText()));
			estudiante.setNombre(vistaEstudiante.txtNombre.getText());
			estudiante.setApelllido(vistaEstudiante.txtApellido.getText());
			try {
				vistaPrincipal.secc.inscribirEstudiante(estudiante);
			} catch (IOException e) {
				e.printStackTrace();
			}	
			limpiar();
			JOptionPane.showMessageDialog(null, "El ESTUDIANTE HA SIDO REGISTRADO", 
					"REGISTRO", 
					JOptionPane.INFORMATION_MESSAGE);
			
		}
		else
			JOptionPane.showMessageDialog(null, "DEBES LLENAR TODOS LOS LOS CAMPOS", 
					"REGISTRO", 
					JOptionPane.INFORMATION_MESSAGE);
		}
		
		if(ae.getSource()==vistaEstudiante.btnBuscar){
			Estudiante estudiante=new Estudiante();
			
			if (!vistaEstudiante.txtCedula.getText().equals("")) {
				 if(vistaPrincipal.secc.buscar(Integer.parseInt(vistaEstudiante.txtCedula.getText()))){
			        try {
						estudiante=vistaPrincipal.secc.obtenerEstudiante(Integer.parseInt(vistaEstudiante.txtCedula.getText()));
					} catch (NumberFormatException e) {
						e.printStackTrace();
					} catch (IOException e) {
						e.printStackTrace();
					}
			        vistaEstudiante.txtNombre.setText(estudiante.getNombre());
			        vistaEstudiante.txtApellido.setText(estudiante.getApelllido());
					vistaEstudiante.btnRetirar.setEnabled(true);
			       
				    }
				    else{
				    	 JOptionPane.showMessageDialog(null, "El ESTUDIANTE NO EXISTE", 
									"BUSQUEDA", 
									JOptionPane.INFORMATION_MESSAGE);
				    	 vistaEstudiante.txtNombre.setEnabled(true);
					     vistaEstudiante.txtApellido.setEnabled(true);
					     vistaEstudiante.btnRegistrar.setEnabled(true);
				    	activar();
				 		

	                       }

                                                        }
		                                           }
		if(ae.getSource()==vistaEstudiante.btnRetirar){
			int pos;
				 if(vistaPrincipal.secc.buscar(Integer.parseInt(vistaEstudiante.txtCedula.getText()))){
					 pos= vistaPrincipal.secc.buscarPosicion(Integer.parseInt(vistaEstudiante.txtCedula.getText()));
					 try {
						vistaPrincipal.secc.retirarEstudiante(pos);
					} catch (IOException e) {
						e.printStackTrace();
					}
					 JOptionPane.showMessageDialog(null, "El ESTUDIANTE HA SIDO RETIRADO", 
								"RETIRO", 
								JOptionPane.INFORMATION_MESSAGE);
						limpiar();

                    }
				 else
				 JOptionPane.showMessageDialog(null, "El ESTUDIANTE NO SE ENCUENTRA REGISTRADO","RETIRO", JOptionPane.INFORMATION_MESSAGE);
					
			}
		if(ae.getSource()==vistaEstudiante.btnLimpiar){
			limpiar();
		}
		if(ae.getSource()==vistaEstudiante.btnSalir){
			vistaEstudiante.dispose();
		}
	}
	private boolean validarCampos(){
		boolean sw= false;
		if ((!vistaEstudiante.txtCedula.getText().equals("")) && (!vistaEstudiante.txtNombre.getText().equals("")) && (!vistaEstudiante.txtApellido.getText().equals("")))
		    sw=true;
		return sw;
		
	}
	private void limpiar() {
		vistaEstudiante.txtCedula.setEditable(true);
		vistaEstudiante.btnBuscar.setEnabled(true);
		vistaEstudiante.txtCedula.setText("");
		vistaEstudiante.txtNombre.setText("");
		vistaEstudiante.txtApellido.setText("");
		desActivar();
	}
	private void desActivar(){
		vistaEstudiante.txtNombre.setEnabled(false);
		vistaEstudiante.txtApellido.setEnabled(false);
		vistaEstudiante.btnRegistrar.setEnabled(false);
		vistaEstudiante.btnRetirar.setEnabled(false);
		vistaEstudiante.txtCedula.requestFocus(true);
	}
	private void activar(){
		vistaEstudiante.txtNombre.setEditable(true);;
		vistaEstudiante.txtApellido.setEditable(true);
		vistaEstudiante.btnLimpiar.setEnabled(true);
		vistaEstudiante.btnRegistrar.setEnabled(true);
		vistaEstudiante.btnRetirar.setEnabled(true);
		vistaEstudiante.txtNombre.requestFocus(true);
	}
	
}


